package com.zhende.hr;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.config.rules.DateType;

public class CodeGenerator {
    public static void main(String[] args) {
        // 创建 AutoGenerator 实例
        AutoGenerator generator = new AutoGenerator();

    
        // 数据库配置（SQL Server）
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setUrl("jdbc:sqlserver://192.168.0.210:1322;databaseName=zd_pricing_test"); // SQL Server 连接URL
        dataSourceConfig.setDriverName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        dataSourceConfig.setUsername("sa");
        dataSourceConfig.setPassword("3915FMta#!8429.");

        generator.setDataSource(dataSourceConfig); // 使用 setDataSource 方法来设置数据源

        // 全局配置
        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setOutputDir("src/main/java"); // 代码输出目录
        globalConfig.setAuthor("Your Name"); // 作者
        globalConfig.setOpen(false); // 是否打开输出目录
        globalConfig.setDateType(DateType.ONLY_DATE); // 日期类型
        globalConfig.setFileOverride(true); // 是否覆盖已有文件

        generator.setGlobalConfig(globalConfig);

        // 包配置
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.zhende");
        packageConfig.setModuleName("module");
        packageConfig.setEntity("entity");
        packageConfig.setMapper("mapper");
        packageConfig.setService("service");
        packageConfig.setController("controller");

        generator.setPackageInfo(packageConfig);

        // 策略配置
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setInclude("pricing_surgical", "surgical_auxiliary"); // 要生成的表
        strategyConfig.setNaming(NamingStrategy.underline_to_camel); // 表名转驼峰命名
        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel); // 列名转驼峰
       // strategyConfig.setEntityLombokModel(true); // 是否使用 Lombok

        generator.setStrategy(strategyConfig);

        // 执行代码生成
        generator.execute();
    }
}
